wayland: Don't emit direction-changed unless it did
authorMatthias Clasen <mclasen@redhat.com>
Wed, 4 May 2016 02:52:38 +0000 (22:52 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Wed, 4 May 2016 02:52:38 +0000 (22:52 -0400)
We can easily check this, so lets do it.

gdk/wayland/gdkdevice-wayland.c

index 72d856bfd477477535d35eb44be9dfc3229e9977..71389e3153eb86082ab8ce301ed02bb1e3bd6df2 100644 (file)
@@ -1568,12 +1568,17 @@ keyboard_handle_keymap (void               *data,
                         uint32_t            size)
 {
   GdkWaylandSeat *seat = data;
+  PangoDirection direction;
+
+  direction = gdk_keymap_get_direction (seat->keymap);
 
   _gdk_wayland_keymap_update_from_fd (seat->keymap, format, fd, size);
 
   g_signal_emit_by_name (seat->keymap, "keys-changed");
   g_signal_emit_by_name (seat->keymap, "state-changed");
-  g_signal_emit_by_name (seat->keymap, "direction-changed");
+
+  if (direction != gdk_keymap_get_direction (seat->keymap))
+    g_signal_emit_by_name (seat->keymap, "direction-changed");
 }
 
 static void